package com.tsd.system.service;

import com.tsd.core.vo.PageBean;
import com.tsd.system.entity.SysDataLog;
import com.tsd.system.entity.SysDataLogExt;
import com.tsd.system.entity.SysUser;
import com.tsd.system.entity.SysUserExt;

import java.util.List;
import java.util.Map;

/**
 * 描述：SysDataLog服务实现层接口
 *
 * @author Hillpool
 * @date 2021/01/12 12:04:12
 */
public interface SysDataLogService {

    /**
     * 描述：根据sid获取SysDataLog
     *
     * @param sid
     */
    SysDataLogExt getSysDataLogBySid(String sid) throws Exception;

    /**
     * 描述：根据sid获取SysDataLog
     *
     * @param sid
     */
    SysDataLogExt queryBySid(String sid) throws Exception;

    /**
     * 描述：根据id删除SysDataLog
     *
     * @param list
     * @param opUser
     */
    void deleteSysDataLog(List<String> list, SysUserExt opUser) throws Exception;

    /**
     * 描述：保存或更新SysDataLog
     *
     * @param record
     * @param opUser
     */
    void saveSysDataLog(SysDataLogExt record, SysUser opUser) throws Exception;

    /**
     * 添加数据修改历史
     *
     * @param op_name  操作名称
     * @param prevData 操作前数据
     * @param postData 操作后数据
     * @param opUser   登录用户
     * @throws Exception
     */
    void addSysDataLog(String op_name, Object prevData, Object postData, SysUser opUser) throws Exception;

    /**
     * 描述：根据params分页查询SysDataLog
     *
     * @param params
     * @param page
     */
    List<SysDataLogExt> findSysDataLogs(Map<String, Object> params, PageBean page) throws Exception;

    /**
     * 描述：根据params分页查询SysDataLog
     *
     * @param params
     */
    List<SysDataLogExt> findSysDataLogs(Map<String, Object> params) throws Exception;
}
